উদাহরণ সহ Spring ORM এ CRUD অপারেশন বাস্তবায়ন

Java Technologies - স্প্রিং ওআরএম (Spring ORM) Spring ORM এ CRUD অপারেশন |
73
73

Spring ORM ব্যবহার করে Java-তে ডাটাবেসের সঙ্গে CRUD (Create, Read, Update, Delete) অপারেশন সহজেই বাস্তবায়ন করা যায়। Hibernate ORM ফ্রেমওয়ার্ক এবং Spring-এর Transaction Management ব্যবহারের মাধ্যমে এটি করা হয়। নিচে উদাহরণ সহ ব্যাখ্যা দেওয়া হলো।


প্রাথমিক কনফিগারেশন

Maven ডিপেনডেন্সি

প্রথমে প্রকল্পে Hibernate এবং Spring ORM-এর ডিপেনডেন্সি যোগ করতে হবে:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>YOUR_SPRING_VERSION</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>YOUR_HIBERNATE_VERSION</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>YOUR_MYSQL_VERSION</version>
</dependency>

Hibernate Configuration

Hibernate Configuration ফাইল hibernate.cfg.xml উদাহরণ:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/spring_orm_demo</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">password</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

মডেল ক্লাস তৈরি

উদাহরণস্বরূপ, একটি Employee ক্লাস তৈরি করা হলো:

package com.example.model;

import jakarta.persistence.*;

@Entity
@Table(name = "employees")
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "department")
    private String department;

    @Column(name = "salary")
    private Double salary;

    // Getters and Setters
}

DAO (Data Access Object) তৈরি

Spring ORM এ DAO ক্লাস Hibernate ব্যবহার করে ডাটাবেস অপারেশন পরিচালনা করে।

package com.example.dao;

import com.example.model.Employee;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class EmployeeDao {

    @Autowired
    private SessionFactory sessionFactory;

    public void save(Employee employee) {
        Session session = sessionFactory.getCurrentSession();
        session.save(employee);
    }

    public Employee getById(Long id) {
        Session session = sessionFactory.getCurrentSession();
        return session.get(Employee.class, id);
    }

    public List<Employee> getAll() {
        Session session = sessionFactory.getCurrentSession();
        return session.createQuery("from Employee", Employee.class).list();
    }

    public void update(Employee employee) {
        Session session = sessionFactory.getCurrentSession();
        session.update(employee);
    }

    public void delete(Long id) {
        Session session = sessionFactory.getCurrentSession();
        Employee employee = session.get(Employee.class, id);
        if (employee != null) {
            session.delete(employee);
        }
    }
}

সার্ভিস ক্লাস তৈরি

DAO ক্লাসের ওপর ভিত্তি করে সার্ভিস লেয়ার তৈরি করা হয়:

package com.example.service;

import com.example.dao.EmployeeDao;
import com.example.model.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class EmployeeService {

    @Autowired
    private EmployeeDao employeeDao;

    public void saveEmployee(Employee employee) {
        employeeDao.save(employee);
    }

    public Employee getEmployeeById(Long id) {
        return employeeDao.getById(id);
    }

    public List<Employee> getAllEmployees() {
        return employeeDao.getAll();
    }

    public void updateEmployee(Employee employee) {
        employeeDao.update(employee);
    }

    public void deleteEmployee(Long id) {
        employeeDao.delete(id);
    }
}

Spring Configuration

Spring Configuration এ Hibernate SessionFactory Bean তৈরি করতে হবে:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

@Configuration
@EnableTransactionManagement
public class AppConfig {

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_orm_demo");
        dataSource.setUsername("root");
        dataSource.setPassword("password");
        return dataSource;
    }

    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan("com.example.model");
        return sessionFactory;
    }
}

CRUD অপারেশন পরীক্ষা করা

Spring এর সাহায্যে CRUD অপারেশন চালানোর জন্য নিচে একটি Main ক্লাস উদাহরণ দেওয়া হলো:

package com.example;

import com.example.model.Employee;
import com.example.service.EmployeeService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = 
                new AnnotationConfigApplicationContext(AppConfig.class);

        EmployeeService employeeService = context.getBean(EmployeeService.class);

        // Create
        Employee employee = new Employee();
        employee.setName("John Doe");
        employee.setDepartment("IT");
        employee.setSalary(50000.0);
        employeeService.saveEmployee(employee);

        // Read
        Employee fetchedEmployee = employeeService.getEmployeeById(employee.getId());
        System.out.println("Fetched Employee: " + fetchedEmployee.getName());

        // Update
        fetchedEmployee.setSalary(60000.0);
        employeeService.updateEmployee(fetchedEmployee);

        // Delete
        employeeService.deleteEmployee(fetchedEmployee.getId());

        context.close();
    }
}

Spring ORM এবং Hibernate ব্যবহার করে এভাবে CRUD অপারেশন সহজেই বাস্তবায়ন করা যায়। এই উদাহরণ ডাটাবেসের সঙ্গে ইন্টিগ্রেশন এবং স্প্রিং এর শক্তিশালী ফিচার ব্যবহার করে উন্নত অ্যাপ্লিকেশন তৈরির জন্য একটি মডেল হিসেবে কাজ করে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion